MOP: Reliable Software Development using Abstract Aspects
نویسندگان
چکیده
Monitoring-Oriented Programming (MOP) is a formal framework for software development and analysis. It aims at reducing the gap between formal specification and implementation via runtime monitoring. In MOP, the developer specifies desired properties using definable specification formalisms, along with code to execute when properties are violated or validated, which can be used not only to report, but especially to recover from errors. The MOP framework automatically generates monitors from the specified properties and then integrates them together with the recovery code into the original system. Since the recovery code typically is executed infrequently and can be validated more easily than the actual system, MOP is expected to increase software reliability at little amortized runtime overhead. This paper presents MOP from a pragmatic, rather than foundational perspective, as an instance of aspect-oriented programming(AOP) where one defines abstract aspects using logics; one is relieved from providing unnecessary implementation details, because these are generated and integrated automatically. Existing AOP tools provide crucial support: an MOP frontend for Java, called JavaMOP and also discussed in the paper, is implemented using AspectJ. A series of examples illustrate the strengths of MOP from different perspectives.
منابع مشابه
Ap/s++: Case-study of a Mop for Purposes of Software Evolution
We study a recent programming paradigm known as Adaptive Programming (AP) as an ideal candidate for a metaobject protocol (MOP) for object-oriented programming languages; we call it the AP MOP. The major beneet of the AP MOP is to provide a mechanism for writing base-level programs in a structure-shy manner. Doing so, the programs are more robust to changes in the structural aspects of the appl...
متن کاملNASA / CP - 2008 - 215309 Proceedings of the Sixth NASA Langley
We describe a runtime verification approach to increase the safety of IVHM systems by an integration of TEAMS models and MOP (Monitor-Oriented Programming). The TEAMS model is used to automatically extract relevant runtime information from the controlled system by means of events. This information is passed on-line to the MOP engine, allowing to verify complex temporal properties and to discove...
متن کاملDevelopment of a Metaobject Protocol for Fault-Tolerance using Compile-Time Reflection
The use of metalevel architectures for the implementation of fault-tolerant systems is today very appealing. Nevertheless, all such fault-tolerant systems have used a general-purpose metaobject protocol (MOP) or are based on restricted reflective features of some object-oriented language. According to our past experience, we define in this paper a suitable metaobject protocol, called FT-MOP for...
متن کاملA Formal Monitoring-Based Framework for Software Development and Analysis
A formal framework for software development and analysis is presented, which aims at reducing the gap between formal specification and implementation by integrating the two and allowing them together to form a system. It is called monitoring-oriented programming (MOP), since runtime monitoring is supported and encouraged as a fundamental principle. Monitors are automatically synthesized from fo...
متن کاملChecking and Correcting Behaviors of Java Programs at Runtime with Java-MOP
Monitoring-oriented programming (MOP) is a software development and analysis technique in which monitoring plays a fundamental role. MOP users can add their favorite or domain-specific requirements specification formalisms into the framework by means of logic plug-ins, which essentially comprise monitor synthesis algorithms for properties expressed as formulae. The properties are specified toge...
متن کامل